Skip to main content

Configuring database server

To install and configure a MySQL database server on a Debian-based Linux system (such as Debian, Ubuntu, or Linux Mint), you can follow these steps:

Installing MySQL

Note: Before you begin, make sure you have root or sudo privileges on your system.

  1. Update Your System: Ensure that your system's package repository information is up to date by running:

    sudo apt update
  2. Install MySQL Server: You can install MySQL Server using the mysql-server package:

    sudo apt install mysql-server

    During the installation, you will be prompted to set a password for the MySQL "root" user. Make sure to choose a strong password and remember it, as you'll need it to access the MySQL server.

  3. Secure MySQL Installation (Optional): To improve security, you can run the MySQL secure installation script:

    sudo mysql_secure_installation

    This script will guide you through various security-related options, including setting a root password, removing anonymous users, disallowing remote root login, and removing the test database. It's recommended to answer "Y" (yes) to these options for a more secure setup.

  4. Start and Enable MySQL: After installation, start the MySQL service and enable it to start on boot:

    sudo systemctl start mysql
    sudo systemctl enable mysql
  5. Verify MySQL Status: Check the status of the MySQL service to ensure it's running:

    sudo systemctl status mysql

    You should see output indicating that MySQL is active and running.

  6. Access MySQL: You can access the MySQL shell as the root user with the following command. Replace <password> with the root password you set during installation:

    mysql -u root -p

    You'll be prompted to enter the root password.

  7. Create Databases and Users: You can now create databases, users, and grant privileges as needed. Here's an example of creating a database, a user, and granting privileges:

    CREATE DATABASE mydatabase;
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
    FLUSH PRIVILEGES;

    Replace mydatabase, myuser, and mypassword with your own values.

  8. Exit MySQL Shell: Type exit to exit the MySQL shell.

Configuring MySQL

A configuration file, often referred to as a configuration file or config file, is a text file used to store settings and parameters that define how a software application, service, or system behaves. In the context of a database server like MySQL, the configuration file contains settings that control various aspects of the database server's behavior. Here are some common aspects of a database server configuration file and a few commonly changed configuration options:

Database Configuration File Location: In MySQL, the configuration file is typically named my.cnf or my.ini depending on your system and is located in the MySQL data directory. The exact location can vary but is often found in /etc/mysql/ or /etc/my.cnf. You can also check the my.cnf location using the following command:

mysql --help | grep "Default options"

Commonly Changed Configuration Options:

  1. Port Number (default: 3306): You can change the port on which MySQL listens for incoming connections. This can be useful if you want to run multiple MySQL instances on the same server or if you need to comply with firewall rules.

    Example:

    port = 3307
  2. Bind Address (default: 127.0.0.1): This option specifies the IP address that MySQL listens on. By default, it listens only on the localhost (127.0.0.1), but you can change it to allow remote connections.

    Example to allow remote connections:

    bind-address = 0.0.0.0
  3. Data Directory (default: /var/lib/mysql): The data directory is where MySQL stores its databases and related files. You can change this location to store data on a different disk or directory.

    Example:

    datadir = /new/data/directory
  4. Character Set (default: utf8mb4): You can specify the default character set and collation for the server. This is important for data encoding and sorting.

    Example:

    character-set-server = utf8mb4
    collation-server = utf8mb4_general_ci
  5. Max Connections (default: 151): This option determines the maximum number of simultaneous client connections allowed. Adjust it based on your system's capacity and expected traffic.

    Example:

    max_connections = 500
  6. InnoDB Buffer Pool Size (default: 128M): If you are using the InnoDB storage engine, you can configure the size of the buffer pool, which affects caching and performance.

    Example:

    innodb_buffer_pool_size = 1G
  7. Query Cache (default: OFF): MySQL's query cache can be enabled to cache query results. However, it's often recommended to disable it in recent MySQL versions in favor of other caching mechanisms.

    Example:

    query_cache_type = 1
    query_cache_size = 32M
  8. Log Files (e.g., error log, slow query log): You can specify file paths for error logging, slow query logging, and other logs. These logs are essential for troubleshooting and performance analysis.

    Example:

    log-error = /var/log/mysql/error.log
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow_query.log

After making changes to the MySQL configuration file, you should restart the MySQL service for the changes to take effect:

sudo systemctl restart mysql

The location of the configuration file for MySQL can vary depending on your system and how MySQL was installed. Here are the typical locations for MySQL configuration files on different platforms:

  1. Linux (Debian/Ubuntu):

    • Main Configuration File: /etc/mysql/my.cnf or /etc/mysql/mysql.conf.d/mysqld.cnf
    • Additional Configuration Files (included from main file): Files under /etc/mysql/conf.d/
  2. Linux (Red Hat/CentOS):

    • Main Configuration File: /etc/my.cnf or /etc/mysql/my.cnf
    • Additional Configuration Files (included from main file): Files under /etc/my.cnf.d/

Installing PHPmyadmin

To install phpMyAdmin on a Linux system after installing MySQL, you can follow these steps. These instructions are based on the assumption that you have a Debian-based system (e.g., Ubuntu) or a Red Hat-based system (e.g., CentOS). The specific package manager and commands may vary depending on your distribution.

For Debian/Ubuntu:

  1. Update the package repository:

    sudo apt update
  2. Install phpMyAdmin:

    sudo apt install phpmyadmin

    During the installation, you will be prompted to choose the web server that phpMyAdmin should be configured for. Typically, you should select apache2 if you are using Apache. Use the spacebar to select, and then press Tab to navigate to the "OK" button and press Enter.

  3. You will be prompted to configure the database for phpMyAdmin. You can choose "No" if you already have a MySQL server installed and configured.

  4. Set up a password for the phpMyAdmin application. This password will be used to access the phpMyAdmin web interface. Choose a strong password and confirm it.

  5. The phpMyAdmin package should now be installed. To enable the Apache configuration for phpMyAdmin, run:

    sudo phpenmod mysqli
    sudo systemctl restart apache2
  6. Access phpMyAdmin by opening a web browser and going to:

    http://your-server-ip/phpmyadmin/

    Replace your-server-ip with the IP address or domain name of your server. You should see the phpMyAdmin login page.

  7. Log in using the MySQL username and password you have previously configured.